The present invention generally relates to computer systems that access and process audio data, and more particularly, to mechanisms and techniques that provide an audio resource locator with information which computer systems can process to access audio data and audio data processing capabilities.
In conventional computer networks such as the Internet, a suite of software applications and protocols collectively referred to as the xe2x80x9cWorld Wide Webxe2x80x9d interoperate to allow web browser software, which typically performs (e.g., executes) on behalf of a user on a client computer system coupled to the network, to obtain information from various web server computer systems distributed throughout the network. Generally, the web browser software requests and obtains the information from the servers using a standardized protocol such as the hypertext transfer protocol (HTTP). The information (i.e., data) is often encoded as a web page.
Web pages are essentially comprised of instructions, data or content, and references to data or content that are collectively encoded or written in a scripting language, such as the hypertext markup language (HTML), the extensible markup language (XML) or an applet language such as Java. Such languages allow web page developers (either people or automated software programs) to create or generate web pages that contain or reference many types of multimedia data such as audio data, graphics data, text data, video data and so forth within the web page. If a web page references data or content, as opposed to literally containing the data or content, such references to data are referred to as uniform resource locators or URLs.
According to a typical operation of the World Wide Web, a user on the client computer system coupled to a network executes a web browser and provides a URL for a web page to the browser. The browser receives the URL and uses a protocol such as HTTP to contact a specific server on the network to obtain the web page referenced by the URL. As the browser receives the web page over the network, the browser is able to interpret the web page (i.e., the HTML and associated data and references to data) and present the web page contents to the user of the browser in a format dictated by the web page.
During the process of interpreting and displaying a web page to a user, a typical browser is configured to recognize certain types of data referenced within the web page via embedded URLs. For example, the web page may reference an audio file (e.g., a WAV file) via an embedded URL. A conventional embedded URL of this sort usually specifies a location of a server on the network (via an address, hostname and/or domain name of that server) where the audio file is stored, as well as a filename and/or a filesystem location (e.g., a directory) that indicates a location of the audio file on that server.
When the browser recognizes an embedded URL that identifies an audio file, the browser automatically references that URL to obtain a copy of that audio file. During this process, the browser invokes a reference to the embedded URL within the web page in order to contact the server that stores the audio file, and then requires the server that stores the audio file to transfer the audio file back to the requesting browser. Once the browser receives the audio file in this manner, the browser causes the client computer system to produce (e.g., play) audio output based on data encoded within the audio file using a plug-in software application.
Generally, an xe2x80x9caudio plug-inxe2x80x9d or xe2x80x9cplug-inxe2x80x9d as it is called, operates in conjunction with the browser on the client computer system to audibly reproduce audio data encoded with an audio file to the user of the browser by decoding the audio data. In this manner, a web page can incorporate sound effects such as music, speech or other audible information, which the browser can present to the user once the browser obtains the audio file data referenced within the web page via the embedded URL.
In the case of audio files referenced via URLs as explained above, the browser software may or may not require the use of a plug-in. A plug-in typically incorporates processing logic and decoding algorithms that can read audio file data and reproduce the sound represented by that data. In other words, the plug-in software application understands how to play the audio file data on the client computer system according to the format in which the audio file data is encoded. Since audio decoding processing is often a processor intensive task, audio plug-ins allow the browser software to offload audio file processing to another task (i.e., the plug-in). Audio plug-ins are also helpful since many different audio encoding formats exist and such formats are constantly being updated with newer standards. As such, when a new audio including format becomes popular, the user of a browser can obtain (e.g., via downloading) a plug-in capable of decoding the new format without having to obtain a new version of the browser.
As an example, during development of a web page, a web page designer may create an audio file using a standardized audio encoding format such as MPEG3 or MP3. The web page designer can incorporate an embedded URL reference to this audio file within the web page. When a user""s browser software loads the web page, the browser invokes a reference to the embedded URL for the MP3 audio file in order to begin retrieving the audio file and concurrently attempts to launch (e.g., execute) an MP3 plug-in capable of audibly reproducing the MP3 data from the audio file. If the browser cannot find an MP3-capable plug-in on the client computer system, the browser can prompt the user to download an acceptable MP3-capable plug-in from a server on the Internet. Typically, such plug-ins are free for users to download. Once the user obtains the required MP3 plug-in, the browser can launch the MP3 plug-in which then executes to receive the incoming MP3 audio file data and proceeds to audibly reproduce the audio data encoded in MP3 format in the audio file.
Typically, audio file data is not expressly or literally embedded within a web page due to the amount of space that would be required to store such data in the web page file. Rather, by referencing the audio file within the web page as an embedded URL, the web page file can remain relatively small in size and the audio file can be incorporated, via other embedded URL references, into other web pages as well.
Conventional URLs thus provide a convenient and standardized way to reference multimedia content such as sound, graphics or other types of content within a web page without specifically requiring the actual data (e.g., audio data) to be contained within a web page. As another example, if a web page designer wants to include a graphical image within a web page, the web page designer can embed a URL that references an image file containing the graphical image data. When the browser software loads such a web page and detects the embedded URL, the browser software proceeds to invoke a reference to the URL in order to load the graphical image file and display the image to the user of the browser.
Conventional information processing techniques such as those explained above suffer, to various extents, from a number of deficiencies. By way of example, conventional techniques for referencing audio data within a web page experience difficulty when multiple audio sources are to be referenced within the same web page.
As a specific example, if a web page designer using conventional techniques incorporates multiple embedded URL references to different audio files within the same web page, a browser that subsequently loads such a web page and attempts to invoke each reference to each embedded URL will experience difficulties since the browser will attempt to launch a separate instance of the plug-in software application designed to audibly reproduce each audio file referenced by each URL on the client computer system. In other words, if a web page contains multiple embedded URL audio file references, the browser will attempt to launch a plug-in for each reference. If each respective plug-in successfully launches and begins to receive the audio file data for its respective URL reference, the plug-ins will collectively experience contention between each other for access to client computer system resources, such as speakers that are required to audibly reproduce the sounds to the user. If each plug-in were able to access the speakers concurrently, each plug-in would begin the process of audibly reproducing the audio file data concurrently and the resulting audio output that the client computer system presents to the user might be unintelligible.
In conventional systems, when a web page contains references to multiple audio files, a conventional browser causes the plug-in for the last-referenced embedded URL (for an audio file) to have priority over the other plug-ins for other audio files previously referenced. That is, conventional browser and plug-in arrangements only present audible output the user of the client computer system for the last URL audio file reference that exists within the web page. Such arrangements do not produce audio output for the URL audio file references incorporated earlier in the web page. In other words, it is difficult using conventional techniques to incorporate multiple references to audio files within a single web page and to have the browser and plug-in software properly operate to play each reference in succession to one another so that the user can hear each of the audio file references.
One possible solution to the aforementioned problem with conventional web-based audio processing that are techniques would be to use scripting techniques within the web page to insert a delay or pause before the browser launches each plug-in to audibly reproduce each audio file. For instance, if a web page is to include embedded URL references to two thirty-second long audio files, the reference to the second of these audio files could be contained as an embedded URL in the web page within a script routine (e.g., a JavaScript routine) that operates to impose a thirty second (or more) delay before launching the plug-in to audibly reproduce the second referenced audio file. Using such a technique, the browser would execute a first instantiation of the audio plug-in immediately upon detecting the first URL reference to the first audio file. The first plug-in would begin to play the audio file data from the first audio file immediately upon receipt of the data. However, before launching the second instantiation of the audio plug-in, the browser would perform, for example, a JavaScript routine which would inject an intentional delay into the processing of the browser before allowing the browser to launch the second instance of the audio plug-in to retrieve and play the second referenced audio file. In this manner, the plug-ins would audibly reproduce the audio files sequentially, one after another, instead of concurrently attempting to do so.
Such a solution to the aforementioned problems is cumbersome and does not account for any delays that may be experienced, for example, when retrieving the audio file over the computer network. In other words, the delay injected into the browser processing by the script routine in order to postpone the production of audible output for the second URL audio reference would only be an estimate based on the length of time that would be required to both obtain, and play, the first audio file by the first instance of the plug-in. If this delay were incorrectly calculated, the browser might attempt to launch the second instance of the plug-in before the first instance of the plug-in was finished audibly reproducing the first audio file data, or, the period of silence may occur if the delay were too long.
Another drawback that exists with conventional approaches to providing audio output via a browser on a client computer system relates to the limited processing capabilities that exist within conventional browsers. Generally, the audio capabilities of computer web browsers are rather limited. For instance, as noted above, a browser typically requires a plug-in to audibly reproduce audio file data. Obtaining the plug-in is a burdensome process to the user of the browser, and plug-in functionality itself is often limited to simple play back of audio data. Little effort has been made to significantly enhance the capabilities of audio plug-ins to provide robust audio processing operations such as those supported by the system of this invention, as explained herein.
As another example, while an HTML xe2x80x9cembedxe2x80x9d tag that embeds a URL reference to audio data supports limited sound playing capability, it is not possible, using current browser technology, to control the size of the audio files that the browser retrieves, nor is it possible to control the format or type of encoding contained within the audio files referenced in an embedded URL.
To exemplify such a deficiency, consider a situation that might arise when a web page contains an embedded URL reference to an audio file encoded in a new audio encoding technique. For instance, certain computer manufacturers have developed audio encoding techniques which are semi-proprietary. If a browser references a web page containing an embedded URL reference to a proprietarily encoded audio file and the client computer system does not contain a plug-in that can properly decode such a proprietary audio file format for audible reproduction, the user must either download the plug-in that is capable of decoding the proprietary audio file format or the audio file data may be retrieved by the browser but then ignored by the user. If the browser software does not have access to a plug-in that can properly decode the audio file data, the client computer system produces no sound at all for that audio data and the user of the client computer system misses out on the full experience of interacting with the browser with respect to that web page.
The present invention significantly overcomes the aforementioned limitations by providing mechanisms and techniques to allow a web page to contain a reference to audio data referred to herein as an Audio Resource Locator or ARL. An ARL is similar to a URL except that an ARL includes a reference to audio data, an audio command and an audio server reference that identifies an audio server (i.e., a computer system on a computer network) that can process the reference to audio data within the audio resource locator according to the audio command within the audio resource locator to produce an output. The ARL of this invention thus specifies audio data and an audio command to be performed on the audio data, as well as an audio server computer system capable of performing the audio command on the audio data.
The invention also provides an audio server computer system which is capable of receiving a request that is a result of a browser referencing an ARL of the invention. The audio server can parse the request to determine the identity of the audio data referenced by the ARL, and can obtain the audio command within the ARL. The audio server can then perform the audio command on the audio data referenced by the ARL in order to process the audio data. The audio server can produce, for example, audio output that is a result of such processing and can return or serve the audio output back to the computer system (e.g., a client computer system executing a browser on behalf of a user) that referenced the ARL.
As a specific example, the ARL of the present invention can reference an audio server on a computer network (e.g., the Internet) such as xe2x80x9cwww.audioserver.comxe2x80x9d and the ARL can contain an audio command such as xe2x80x9cMERGExe2x80x9d and might further contain a reference to audio data in the form of three separate audio files, each of which may exist (i.e., may be stored) in any encoded format on the audio server or within other servers within the computer network. The audio server of the invention can receive a client request based on a reference to such an ARL and can process the MERGE command in order to concatenate or append each of the three separate audio files in sequential order into a single audio file that is then output from the audio server back to the requesting client. The audio command can also optionally specify (e.g., in addition to the MERGE audio command portion) an audio output format to which the output from the audio server should conform in order to be compatible, for example, with the browser or plug-in on the client computer system to which the audio server returns the output. For example, the audio command may specify the MERGE command and may further specify an audio output format such as xe2x80x9cWAVxe2x80x9d which is a standard and quite popular audio encoding format. The audio command in the ARL might thus appear as xe2x80x9cMERGE#WAVxe2x80x9d, where the audio output format is specified after the xe2x80x9c#xe2x80x9d delimiter. Such an ARL would cause the audio data files referenced in the ARL to be merged into one audio output file and this file would be in the xe2x80x9cwavexe2x80x9d file format.
In this manner, the system of the invention provides a robust environment in which audio data can be incorporated into information such as a web page without regard to the specific capabilities of the client computer system, its browser software, or its plug-ins. This is because the ARL identifies the audio data, an audio command, and an audio server that can properly process the audio command on the audio data (as per the command) remotely from the client that actually references or selects (e.g., via a user clicking on the ARL within a web page or via the users browser automatically invoking a reference to the ARL) the ARL. This offloads the actual audio data processing to the remote audio server.
Using the system of the invention, there may be more than one audio server on the computer network to which the client computer system couples. Each different audio server might be tailored to process certain audio data in certain ways. For example, a first audio server might be able to efficiently merge audio files, while another audio server might be equipped with software to compare audio files and provide an output that indicates if they are the same of not. In any event, using the ARL techniques explained herein, a variety of complex audio processing tasks can be specified by an ARL, for example, within a web page, but these actual complex audio processing tasks (e.g., signal processing algorithms to merge, compare, mix, separate, convert, etc.) need not be performed or included (e.g., as a special audio plug-in) on the client computer system or within the web browser. Instead, the client references (e.g. invokes, automatically or otherwise) the ARL (e.g., much like an embedded or user-selectable URL is invoked in a conventional web page) which causes the client to hand-off the audio processing task (specified in the ARL via the audio command) to the specified audio server (indicated in the ARL) which then performs the audio processing task on audio data (also specified in the ARL) and when complete returns the output back to the client.
More specifically, embodiments of the invention provide mechanisms and techniques that include a method for serving information. The method may be performed by a web server, for example, and the information may be a web page. The method includes the steps of receiving a request for information (e.g., a request for a web page) and generating the information. The information includes an audio resource locator that includes i) a reference to audio data, ii) an audio command, and iii) an audio server reference that identifies an audio server that can process the reference to audio data within the audio resource locator according to the audio command within the audio resource locator to produce an output. This method embodiment also includes the step of serving the information including the audio resource locator to the originator of the request for the information. Using this method, a web server can serve a web page that includes ARLs configured according to the invention. When a client (i.e. the browser) references an ARL, audio processing is offloaded from the client computer system to the audio server.
According to another embodiment of the invention, the step of generating includes the steps of determining that the audio resource locator is to be included in the information and dynamically generating the information to include the audio resource locator reference. To this end, this embodiment provides a technique for dynamically generating information, such as a web page, that includes an ARL configured in accordance with the invention
In another embodiment of the invention, the step of dynamically generating the information includes the steps of determining a type of audio data that is compatible with the originator of the request for the information and selecting the audio command to be included in the audio resource locator. The audio command is selected such that the audio server reference in the audio resource locator can perform the audio command on the reference to audio data (also in the audio resource locator) to produce the output in a format that is compatible with the originator of the request for the information. In other words, according to this embodiment, a web server that generates information such as a web page (either by retrieving a static web page or by dynamically generating a web page) can query and originator of the request for the information, such as a client computer system, to determine a preferred audio output format that is compatible (i.e., for which there is a plug-in) with the originator of the request for the information. The method then selects an audio command to be incorporated into the ARL that includes a specification of this audio output format such that when the information is served to the originator of the request (i.e. the when the web page containing the ARL is provided to the client) and the client references that ARL within that web page, the audio server of the invention will process the ARL (as explained herein) and will return audio output back to the client which is assured to be compatible with a plug-in available on that client.
According to another embodiment of the invention, the audio command to be included in the audio resource locator specifies a conversion operation to convert the reference to audio data in the audio resource locator to audio output that is compatible with the originator the request for the information. As noted above, such an embodiment allows customized creation of ARLs during web page generation such that the audio data that an audio server returns as output in response to a client referencing the ARL is in a format that is compatible with the client. In particular, this embodiment allows the ARL to convert the reference to audio data in one format to audio data in another format. For example, in ARL of the invention may include a reference to audio data in MP3 format and may include a CONVERT audio command that includes an ideal output format specification such as WAV (for .wav files). When a client references such an ARL, the audio server converts the referenced MP3 audio file to WAV format and returns the resulting WAV output to the client.
In yet another embodiment of the invention, the conversion operation specifies an audio output format that is compatible with the type of audio data that is compatible with the originator of the request for information. As noted in the example above, the specification of an audio output format allows the invention to convert audio files from one format to another and offloads this processing to the audio server of the invention.
In yet another embodiment, the step of dynamically generating the information includes the steps of determining a type of audio data that is compatible with the originator of the request for the information and selecting the reference to audio data to be included in the audio resource locator such that the audio server reference in the audio resource locator can perform the audio command on the reference to audio data in the audio resource locator to the output. Also in this embodiment, the output is audio output that is compatible with the originator of the request for the information.
In a further embodiment, the information is a web page and the audio resource locator is embedded within the web page and the step of generating obtains the information containing the audio resource locator from web page storage. Thus in this embodiment, to a web server serves web pages containing ARL""s configured according to the invention.
In an additional embodiment, the reference to audio data in the audio resource locator specifies a plurality of audio files and the audio command in the audio resource locator specifies a processing operation that the audio server reference is to perform on the plurality of audio files to produce the output, which is audio output, when the originator of request for the information invokes a reference the audio resource locator. In this manner, this embodiment of the invention allows the ARL to reference multiple audio files that are to be processed by an audio server according to the audio command within the ARL.
In still another embodiment, the audio command is at least one of a merge command, a convert command, a concatenate command, a separate command, a sample command and an offset command. Some of the details of these audio command will be explained further herein. The ARL of this invention can thus specify complex audio processing operations which are to be performed by the audio server of the invention. Since such audio processing is offloaded from the client computer systems using this invention, a browser process on a client computer system, for example, can contain a minimal amount of audio processing capability. In other words, conventional audio processing techniques that provide plug-ins to perform audio processing require advanced functionality within the client computer system. However, the architecture of this invention offloads much of the audio processing tasks to an audio server thereby reducing the amount of logic instructions required within the client computer system. Moreover, the audio tasks supported by this invention are not provided by plug-ins in conventional audio processing systems. This design is beneficial in systems that operate on a thin-client model or in such systems, for example, that use proxy browsers which require stripped-down or bare-bones processing models.
According to another embodiment of the invention, the reference to audio data is a uniform resource locator reference to at least one file of audio data located on a server computer system on a computer network. This method embodiment thus allows an ARL of the invention to reference audio data that can be located anywhere within the computer network.
Other embodiments of the invention relate to methods for obtaining audio server output. Generally, these method embodiments are performed within the client computer system configured in accordance with the invention.
One such embodiment comprises the steps of receiving an audio resource locator that specifies i) a reference to audio data, ii) an audio command and iii) an audio server reference that identifies an audio server that can process the reference to audio data within the audio resource locator according to the audio command within the audio resource locator to produce an output. The method also includes the steps of invoking a reference to the audio resource locator to have the audio server produce the output by processing the reference to audio data according to the audio command specified in the audio resource locator and receiving, from the audio server, the output produced in response to invoking the reference to the audio resource locator. In this manner, the client computer system configured to perform this method can reference the ARL within the information, such as a web page, and can receive output processed by the audio server in response to the client referencing the ARL of the invention.
In another embodiment, the audio resource locator is a uniform resource locator in a web page within a browser on a client computer system, and the step of invoking includes the steps of detecting the presence of the audio resource locator within the web page in the browser and initiating a request to the audio server reference in the audio resource locator according to a data communications protocol. In this embodiment, the request includes a reference to the audio resource locator that includes the reference to audio data and the audio command that the audio server is to perform on the audio data. Accordingly, a client computer system treats the ARL of this invention as if it were a URL, such as an embedded URL, within a web page, by detecting (e.g., automatically in the case of an embedded ARL) and invoking the reference to the ARL.
In another embodiment, the output is audio output and the method further includes the steps of providing the output as audio output received from the audio server in an audible format to a user of the computer system. In this embodiment then, the audio server performs the audio command on the referenced audio data to produce audio output which the client computer system receives and can play to the user of the client computer system. In other embodiments, the output may be logic information that might indicate, for example, a yes or no answer in response to the audio server processing the audio command on the references to audio data in the ARL. For instance, in the case of a COMPARE audio command, which might cause the audio server to compare the contents of to audio data references, the output may be logic information containing true or faults or yes or no indicating if the references to audio data on the same or not.
Other embodiments of the invention relate to methods for producing output from an audio server. Such embodiments are typically performed within an audio server computer system configured in accordance with the invention.
One such method embodiment comprises the steps of receiving, at an audio server, a request to process audio data. The request includes i) a reference to audio data, ii) an audio command, iii) an audio server reference that identifies the audio server. The method also includes the steps of processing the reference to audio data within the request according to the audio command within the request to produce an output and serving the output to an originator of the request. In this manner, in audio server configured to perform such a method can receive, for example, from a client computer system, a request to process audio data based on the client referencing in ARL of this invention. The audio server can then perform the audio command within the request on any references to audio data within the request and can producing output which is returned to the originator of the request, which is the client computer system in this example.
In another embodiment, the step of processing includes the steps of parsing the request to process the audio resource locator to obtain an identity of the audio data and the audio command and obtaining the audio data specified by the reference to audio data and performing the audio command upon the audio data to produce the output. In this manner, the audio server is capable of parsing the request to obtain the intended audio command and the identity of any audio data to which the audio command applies. Using this information, the audio server can then retrieve the audio data in process the audio command on the audio data to produce the output which is then returned to the client.
In another embodiment, the step of obtaining includes the step of determining if the audio data is stored locally, and if so, obtaining the audio data from local storage, and if not, obtaining the audio data via a remote reference to the audio data. According to this embodiment, the audio server is capable of obtaining audio data from local storage war, for example, over a computer network from another server.
In yet another embodiment, the audio command includes a specification of an audio output format and wherein the step of processing performs the audio command on the audio data specified by the reference to audio data to produce audio output in a format compatible with the audio output format. In this manner, the ARL of the invention, when reference by a client, produces a request containing an audio command that, in part, specifies the audio output format that the audio server is required to produce when processing the audio command on the references to the audio data in the request. In this manner, the audio server is able to perform complex audio processing tasks in produce properly format output that the requesting client will be able to bobble reproduce to the user.
In still another embodiment, the request is received at the audio server in response to a client computer system invoking a reference to an audio resource locator that specifies the audio server, the audio command and the reference to audio data. As noted above, the functionality of the audio server of this invention is typically commenced when a client references and ARL of the invention which generates a request sent to the audio server to process the audio command on references to audio data within the request.
In another embodiment, the audio command is at least one of a merge command, a convert command, a concatenate command, a separate command, a sample command and an offset command. As noted above, the audio server of this invention is capable of performing complex audio processing tasks in audio data reference in the request is a result of a client referencing in ARL of this invention.
It is to be understood that the specific audio processing commands such as those listed above are not limiting of this invention, but rather, are illustrative of audio processing tasks which the audio server of this invention can support. As such, other audio processing tasks not listed herein could easily be incorporated as processing logic within the audio server. To this end, an ARL of this invention can reference such audio processing tasks via a command associated with such tasks and can specify references to audio data which the audio server of the invention can use as input to such audio processing tasks. Those skilled in art of audio processing operations should understand that any audio processing operations that can be performed on audio data are eligible to be incorporated into the audio server of this invention. An implementor of this invention can assign respective audio commands to such audio processing capabilities (e.g., COMPARE for a compare audio processing algorithm, MERGE for a merge algorithm, MIX for an audio mixing algorithm, etc.) and the web pages can thereafter incorporate ARL""s of this invention which include or contain one or more of these audio commands.
The invention also includes computer systems configured to perform all of the operations of the method embodiments disclosed herein. Such embodiments include a web server computer system configured to perform the methods for serving information as explained herein, as well as a client computer system configured to perform the methods for obtaining audio server output as explained herein, as well as an audio server computer system configured to produce output as explained herein.
More specifically, embodiments of a server computer system, such as a web server, include a server computer system comprising a processor, a memory, an input output mechanism, and an interconnection mechanism coupling the processor, the memory and the input output mechanism. In such embodiments, the memory is encoded with logic instructions that, when performed on the processor, cause the server computer system to serve information by performing the operations of receiving a request for the information from the input output mechanism and generating the information. The information includes an audio resource locator that includes i) a reference to audio data, ii) an audio command, and iii) an audio server reference that identifies an audio server that can process the reference to audio data within the audio resource locator according to the audio command within the audio resource locator to produce an output. The logic instructions also cause the processor to perform the operations of serving the information including the audio resource locator to the originator of the request for the information, via the input output mechanism.
Other embodiments of the server computer system include logic instructions that cause the processor to perform all of the method embodiments related to serving information containing an ARL of the invention, as explained herein.
Other embodiments of the invention relate to a client computer system. Such embodiments include a client computer system comprising a processor, a memory, an input output mechanism and an interconnection mechanism coupling the processor, the memory and the input output mechanism. The memory is encoded with logic instructions that, when performed on the processor, cause the client computer system to obtain audio server output by performing the operations of receiving, via the input output mechanism, an audio resource locator that specifies i) a reference to audio data, ii) an audio command, and iii) an audio server reference that identifies an audio server that can process the reference to audio data within the audio resource locator according to the audio command within the audio resource locator to produce an output. Such embodiments also include logic instructions that, when executed in the processor, cause the client computer system to invoke a reference to the audio resource locator to have the audio server produce the output by processing the reference to audio data according to the audio command specified in the audio resource locator and receive, from the audio server, the output produced in response to invoking the reference to the audio resource locator.
Other embodiments of the client computer system include logic instructions that cause the processor to perform all of the method embodiments related to obtaining audio server output, as explained herein.
Other embodiments of the invention relate to an audio server computer system. Such embodiments include a processor, a memory, an input output mechanism and an interconnection mechanism coupling the processor, the memory and the input output mechanism. The memory is encoded with logic instructions that, when performed on the processor, cause the audio server computer system to produce output by performing the operations of receiving, via the input output mechanism, a request to process audio data. The request includes i) a reference to audio data, ii) an audio command, and iii) an audio server reference that identifies the audio server. Also included are logic instructions that, when performed on the processor, cause the audio server computer system to perform the operations of processing the reference to audio data within the request according to the audio command within the request to produce an output and serving the output to an originator of the request via the input output mechanism.
Other embodiments of the audio server computer system include logic instructions that cause the processor to perform all of the method embodiments related to producing output, such as audio output, as explained herein.
Other embodiments of the invention that are disclosed herein include software programs to perform the operations summarized above and disclosed in detail below. More particularly, a computer program product is disclosed which has a computer-readable medium including computer program logic encoded thereon to provide the methods for performing the tasks associated with the server computer system, the client computer system, and the audio server computer system according to this invention and those associated operations. The computer program logic, when executed on at least one processor within a computing system, causes the processor to perform the operations (e.g., the method embodiments above, and described in detail later) indicated herein. This arrangement of the invention may be provided as software on a computer readable medium such as an optical medium (e.g., CD-ROM), floppy or hard disk or other such medium such as firmware in one or more ROM or RAM or PROM chips or as an Application Specific Integrated Circuit (ASIC). The software, firmware or other such configurations can be installed onto a computer system to cause the computer system to perform the techniques explained herein as the invention.
Another embodiment includes a computer-readable medium including data representations encoded thereon. The data representations include an audio resource locator that includes i) a reference to audio data, ii) an audio command, and iii) an audio server reference that identifies an audio server that can process the reference to audio data within the audio resource locator according to the audio command within the audio resource locator to produce audio output. Essentially, this embodiment is a data structure, that includes data or other information encoded within a computer readable medium such as the magnetic medium (e.g., disk) or electronic medium (e.g., microchip or memory), that represents an ARL as explained herein.
It is to be understood that the system of the invention can be embodied strictly as a software program, as software and hardware, or as hardware alone. Is also to be understood that the audio processing techniques and mechanisms of this invention typically perform (e.g., execute, run, or are otherwise operated) on computer systems coupled to a computer network.
The invention may be embodied in systems, software and/or hardware products designed, developed and/or manufactured by Cisco Systems, Inc. of San Jose, Calif.